package xyz.quanguanjia.masterboy.net;

import java.util.HashMap;
import java.util.List;

import okhttp3.MultipartBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.DELETE;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Part;
import retrofit2.http.Query;
import xyz.quanguanjia.masterboy.MBDGroupInfoRequestModel;
import xyz.quanguanjia.masterboy.MBDLoginConfirmRequestModel;
import xyz.quanguanjia.masterboy.MBDLoginSMSRequestModel;
import xyz.quanguanjia.masterboy.MBDModelResponse;
import xyz.quanguanjia.masterboy.MBDUpdateUserInfoRequestModel;


public interface ApiService {

    @GET("qunguanjia-web-user/group/listPage")
    Call<MBDModelResponse> listPage(@Query("pageNum") String pageNum, @Query("keyword") String keyword);

    @GET("qunguanjia-web-user/user/group/listPage")
    Call<MBDModelResponse> userGroupListPage(@Query("pageNum") String pageNum);

    @GET("qunguanjia-web-user/groupComment/listPage")
    Call<MBDModelResponse> groupCommentList(@Query("groupId") String groupId);

    @POST("qunguanjia-web-user/groupComment/save")
    Call<MBDModelResponse> groupCommentSave(@Body HashMap map);

    @POST("qunguanjia-web-user/groupLike/saveOrCancel")
    Call<MBDModelResponse> groupLike(@Body HashMap map);

    @POST("qunguanjia-web-user/groupLike/groupComment/saveOrCancel")
    Call<MBDModelResponse> groupCommentLike(@Body HashMap map);

    @POST("qunguanjia-web-user/groupLike/groupCommentReply/saveOrCancel")
    Call<MBDModelResponse> groupCommentReplyLike(@Body HashMap map);

    @POST("qunguanjia-web-user/groupCommentReply/save")
    Call<MBDModelResponse> groupCommentReplySave(@Body HashMap map);

    @GET("qunguanjia-web-user/group/getInfo")
    Call<MBDModelResponse> detailPage(@Query("groupId") String groupId);

    @POST("qunguanjia-web-user/user/send/verificationCode")
    Call<MBDModelResponse> verificationCode(@Body MBDLoginSMSRequestModel requestModel);

    @POST("qunguanjia-web-user/user/login")
    Call<MBDModelResponse> userLogin(@Body MBDLoginConfirmRequestModel requestModel);

    @GET("qunguanjia-web-user/user/getInfo")
    Call<MBDModelResponse> userGetInfo();

    @PUT("qunguanjia-web-user/user/update")
    Call<MBDModelResponse> updateUserInfo(@Body MBDUpdateUserInfoRequestModel requestModel);

    @POST("qunguanjia-web-user/group/save")
    Call<MBDModelResponse> saveGroupInfo(@Body MBDGroupInfoRequestModel requestModel);

    @PUT("qunguanjia-web-user/group/update")
    Call<MBDModelResponse> updateGroupInfo(@Body MBDGroupInfoRequestModel requestModel);

    @Multipart
    @POST("qunguanjia-web-user/oss/upload")
        //这里是自己post文件的地址
    Call<MBDModelResponse> uploadAvatar(@Part List<MultipartBody.Part> parts);

    @DELETE("qunguanjia-web-user/user/logout")
    Call<MBDModelResponse> userWriteoff();

    @GET("qunguanjia-web-user/userIntegral/listPage")
    Call<MBDModelResponse> integrateDetail(@Query("pageNum") String pageNum);

    @GET("qunguanjia-web-user/userMessage/listPage")
    Call<MBDModelResponse> userMessageListPage(@Query("pageNum") String pageNum);
}
